From: Cosimo Cecchi Date: Thu, 1 Nov 2012 21:28:46 +0000 (-0400) Subject: remote-search: initialize the DBus proxy asynchronously X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5469 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=10c104529f4cd2feb07779182e2a49de70f8f269;p=gnome-shell.git remote-search: initialize the DBus proxy asynchronously Initializing this synchronously means that we will possibly wait for the process to be auto-activated and answering to our call. If the process is already running it also might not answer immediately our request, as it might be doing sync I/O. The right thing to do is to initialize the proxy asynchronously; there are try/catch blocks in place for when the object is not available, or not properly initialized. https://bugzilla.gnome.org/show_bug.cgi?id=687491 --- diff --git a/js/ui/remoteSearch.js b/js/ui/remoteSearch.js index c4462e9f2..58283d57a 100644 --- a/js/ui/remoteSearch.js +++ b/js/ui/remoteSearch.js @@ -113,12 +113,16 @@ const RemoteSearchProvider = new Lang.Class({ _init: function(title, icon, dbusName, dbusPath) { this._proxy = new SearchProviderProxy(Gio.DBus.session, - dbusName, dbusPath); + dbusName, dbusPath, Lang.bind(this, this._onProxyConstructed)); this.parent(title.toUpperCase()); this._cancellable = new Gio.Cancellable(); }, + _onProxyConstructed: function(proxy) { + // Do nothing + }, + createIcon: function(size, meta) { if (meta['gicon']) { return new St.Icon({ gicon: Gio.icon_new_for_string(meta['gicon']),